﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DreamBuilder.Common;
using ePlanet.ArchiveMange.DataAccess;
using ePlanet.ArchiveMange.Models;
using System.Data;

namespace ePlanet.ArchiveMange.Services
{
    public interface IPageFileService : IBusiness, IArchiveBase
    {
        /// <summary>
        /// 获取全部的卷内件数据
        /// </summary>
        /// <returns></returns>
        ArchiveMangeModal.PAGEFILEDataTable GetAllDocumenArchivetData();

        /// <summary>
        /// 根据卷ID获取卷内件的数据
        /// </summary>
        /// <param name="archiveId">卷ID</param>
        /// <returns></returns>
        ArchiveMangeModal.PAGEFILEDataTable GetPgeFileByArchiveID(string archiveId);
       

        /// <summary>
        /// 根据主键查询数据
        /// </summary>
        /// <param name="typeId"></param>
        /// <returns></returns>
        ArchiveMangeModal.PAGEFILEDataTable GetAllDocumenArchivetDataById(string pageFileId);

        /// <summary>
        /// 根据卷内件ID集合获取卷ID获取卷内件
        /// </summary>
        /// <param name="fileIdList">卷内件ID的集合</param>
        /// <returns></returns>
        DataTable GetPageFileByFileIdList(IList<string> fileIdList);

        DataTable GetPageFileCarrierTypeByFileIdList(IList<string> fileIdList);

        /// <summary>
        /// 根据档案ID,archiveTypeId获取卷内件
        /// </summary>
        /// <param name="DATAID"></param>
        /// <returns></returns>
        DataTable GetPageFileByArchiveIdListAndType(IList<string> fileIdList, int archiveTypeId);

        /// <summary>
        /// 获取某种类型档案的活动件
        /// </summary>
        /// <param name="archiveType"></param>
        /// <returns></returns>
        DataTable GetPageFileByArchiveType(string archiveType);

        /// <summary>
        /// 改变卷内件的序号
        /// </summary>
        /// <param name="pageFileId"></param>
        /// <param name="order"></param>
        void ChangePageFileOrder(string pageFileId, int order);

        /// <summary>
        /// 将两个卷内件的序号互换
        /// </summary>
        /// <param name="DATAID"></param>
        /// <param name="DataID2"></param>
        void MovePageFileOrder(string DATAID, string DataID2);

         /// <summary>
        /// 获取该卷内件最大的ID
        /// </summary>
        /// <param name="ArchiveId"></param>
        /// <param name="order"></param>
        int GetPageFileMaxOrder(string ArchiveId);

        /// <summary>
        /// 从卷内件中移除件
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        bool RemoveData(string key);

        /// <summary>
        /// 时间：2013年5月27日 21:59:34
        /// 备注：设置卷内件档号-与卷档号一致
        /// added by jiejiep
        /// </summary>
        /// <param name="archiveId"></param>
        /// <param name="archiveNum"></param>
        void SetPageFileArchiveNum(string archiveId, string archiveNum);
    }
}
